"""普通方法"""
# 1. 定义: 第一个参数为self，代表 实例本身
# class MethodsDemo:
#     param_a = 0 #类变量
#     def normal_demo(self): # 定义一个类方法，第一个参数必须为self
#         """
#         普通方法
#         :return:
#         """
#         print("这是一个普通方法", self.param_a)
# # 2. 调用: 要有实例化的过程，通过 实例对象.方法名 调用
# md = MethodsDemo()
# md.normal_demo()

"""类方法"""
# 1. 类的定义
class MethodsClass:
    CLASS_PARAM = 0

    # def demo_method(self):
    #     print("这是要给普通方法")
    #
    # def demo_method2(self):
    #     self.demo_method()
    #     print("这是要给普通方法")

    # 定义类方法必须加 classmethod装饰器
    @classmethod
    def class_method(cls):
        """
        类方法，第一个参数需要改为cls
        :return:
        """
        # cls.class_method()    #类方法内不可以直接调用实例方法
        print("这是一个类方法", cls.CLASS_PARAM)

# 2. 类的调用
MethodsClass.class_method() # 无需实例化，直接调用
# 在调用过程中，类和实例都可以直接调用类方法
demo = MethodsClass()
demo.class_method()